perm filename BOOK.PUB[LET,JMC] blob sn#260602 filedate 1977-02-01 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.require "memo.pub[let,jmc]" source_file
C00005 ENDMK
C⊗;
.require "memo.pub[let,jmc]" source_file;
.
.MACRO STANDARD FRONT(SECPRINT, SSPRINT, PAGEPRINT, INDEXCHAR) ⊂
.IF "SECPRINT" ≠ NULL THEN START
.	COUNT SECTION PRINTING "SECPRINT"
.	MACRO s(NAME) ⊂ sname ← SSNAME ← NULL ;
.	NEXT PAGE; NEXT SECTION;
.		BEGIN turn on "{";
.		CENTER select 3;
Chapter {!}
.		SKIP
NAME
.		SKIP;
.		sname ← "CHAPTER " & SECTION!
.		SEND CONTENTS ⊂ SKIP 1;
{SECTION!}∂8NAME
.	⊃
.		END	⊃
.	END ;
.IF "SSPRINT" ≠ NULL THEN START
.	COUNT SUBSECTION IN SECTION PRINTING "SSPRINT"
.	MACRO SS(NAME) ⊂ SSNAME←"NAME";
.		IF LINES<8 THEN NEXT PAGE; NEXT SUBSECTION;
.		START
.		FILL SKIP 2 TURN ON "{∂∞→\"
.		SEND CONTENTS ⊂
∂(13){SUBSECTION!}∂(18)NAME\∞ ∞ ∞.∞ ∂(75)→{PAGE}
. ⊃
.		END
{!}.__%3NAME%1
.		SKIP;
.		TURN OFF ; ⊃
.	END;
.IF "PAGEPRINT" ≠ NULL THEN COUNT PAGE IN SECTION PRINTING "PAGEPRINT"
.IF "INDEXCHAR" = NULL THEN indexing←false else START
.	indexing←true;
.	AT INDEXING  PHRASE  INDEXING  ⊂
.		"PHRASE" ; TURN ON "{"
.		SEND INDEX ⊂}<<{PAGE}_PHRASE_{⊃
.			   TURN OFF	     ⊃
.	END;
.		⊃
.
.MACRO BACK ⊂
.sname ← SSNAME ← NULL
.IF INDEXING THEN START
.	PORTION INDEX
.	WASWORD ← WASLETT ← WASPG ← NULL ;
.	AT "<<" PGNO "#" PHRASE "#" ⊂ LETT ← "PHRASE"[1] ;
.		IF LETT ≠ WASLETT THEN IF LINES<6 THEN NEXT PAGE ELSE SKIP 2 ;
.		IF "PHRASE" ≠ WASWORD THEN START BREAK }PHRASE__PGNO{ END
.		ELSE IF "PGNO" ≠ WASPG THEN },_PGNO{ ;
.		WASPG ← "PGNO" ; WASLETT ← LETT ; WASWORD ← "PHRASE" ; ⊃
.	NOFILL turn on "←→∂\∞"; INDENT 0,0 PREFACE 0
←INDEX
.	SKIP 4
.	sname ← "INDEX"
.	RECEIVE "##"
.	sname ← NULL
.	END
.COUNT PAGE PRINTING "i"
.PORTION CONTENTS
.FILL NOJUST; preface 0; CRBREAK turn on "←→∂\∞";
.INDENT 0,25,10 PREFACE 1 TABS 30,33,36,39,42,45,48,51,54,57,60,63
.once center select 3;
Table of Contents
.SKIP 2
→Page
.SKIP;
.sname ← "Table of Contents"
.RECEIVE
.		⊃
.
.standard front(I,1);